package com.zzh.model.proxy;

/**
 * @author zhangzhihao
 * @email zhangzhihao@gongjiangren.net
 * @date 2020-11-14
 * @desc 分为静态代理 和 动态代理
 *  静态代理 最好是根据包访问限制处理被代理不可被其他位置使用 也可以用于引用三方框架 封装一层 方便分离
 */
public class ProxyDemo {



    private interface Woker{
        void start();
    }


    private static class MyWoker implements Woker{

        @Override
        public void start() {
            System.out.println("静态代理 开始工作");
        }
    }


    public static class ProxyWorker implements Woker{

        private MyWoker myWoker;

        private ProxyWorker(){
            myWoker = new MyWoker();
        }

        private static class ProxyWorkerHolder{
            static ProxyWorker proxyWorker = new ProxyWorker();
        }

        public static ProxyWorker getInstance(){
            return ProxyWorkerHolder.proxyWorker;
        }


        @Override
        public void start() {
            myWoker.start();
        }
    }










}
